//
//  ViewController.m
//  hitTestDemo
//
//  Created by 哆啦 on 2019/11/23.
//  Copyright © 2019 哆啦. All rights reserved.
//

#import "ViewController.h"
#import "testView.h"
#import "TestTableViewCell.h"
#import "TestModel.h"

static NSString *Cell = @"TestTableViewCell";

@interface ViewController () <UITableViewDelegate,UITableViewDataSource>

@property (nonatomic, strong) UIButton *button;
@property (nonatomic, strong) testView *testView1;
@property (nonatomic, strong) UITableView *tableView;
@property (nonatomic, assign) int sum;
@property (nonatomic, strong) NSMutableArray *dataSource;
@property (nonatomic, strong) NSMutableArray *tempArr;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
//    self.testView1 = [testView new];
//    self.testView1.frame = CGRectMake(80, 120, 180, 80);
//    self.testView1.backgroundColor = [UIColor brownColor];
//    [self.view addSubview:self.testView1];
//
//    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAction)];
//    [self.testView1 addGestureRecognizer:tap];
//
//    self.button = [UIButton buttonWithType:UIButtonTypeSystem];
//    self.button.frame = CGRectMake(0, 0, 250, 30);
//    [self.button setTitle:@"hitTestDemo" forState:UIControlStateNormal];
//    self.button.backgroundColor = [UIColor yellowColor];
//    self.button.titleLabel.font = [UIFont systemFontOfSize:15];
//    [self.button addTarget:self action:@selector(buttonTest) forControlEvents:UIControlEventTouchUpInside];
//    [self.testView1 addSubview:self.button];
    
    //[self.view addSubview:self.tableView];
    
    
//    for (int i = 0; i < 3; i++) {
//        TestModel *model = [[TestModel alloc] init];
//        if (i == 0) {
//            model.timeInterval = 1574685505;
//        }else if (i == 1){
//            model.timeInterval = 1574675505;
//        }else if (i == 2){
//            model.timeInterval = 1574665505;
//        }
//        [self.dataSource addObject:model];
//    }
//    [self.tableView reloadData];
    
    self.tempArr = [NSMutableArray arrayWithArray:@[@13,@7,@9,@15,@2,@18,@6,@5]];
    
    NSLog(@"arr:%@",self.tempArr);
   
    //[self getArray:self.tempArr];    //冒泡排序
    [self quickSortArray:self.tempArr left:0 right:7]; //快速排序

//    [self calculateWithNumber:10];
//    NSLog(@"%d",self.sum);
    
    
}

//冒泡排序
- (void)getArray:(NSMutableArray *)array
{
    for (int i = 1; i < array.count - 1; i++) {
        for (int j = 0; j < array.count - i; j++) {
            if ([array[j] intValue] > [array[j+1] intValue]) {
                //[array exchangeObjectAtIndex:j+1 withObjectAtIndex:j];
                id temp = array[j];
                array[j] = array[j+1];
                array[j+1] = temp;
            }
        }
    }
    //NSLog(@"array:%@",array);
}

//快速排序
- (void)quickSortArray:(NSMutableArray *)array left:(NSInteger)left right:(NSInteger)right
{
    if (left > right) {
        return;
    }
    
    NSInteger i = left;
    NSInteger j = right;
    
    NSInteger key = [array[i] intValue];
    
    while (i != j) {
        //先从右边查起比基准数小的值
        while ([array[j] intValue] >= key && i < j) {//如果比基准数大，继续查找
            j--;
        }
        //如果比基准数小，则将查找到的小值调换到i的位置
        array[i] = array[j];
        
        //再从左边查起比基准数大的值
        while ([array[i] intValue] <= key && i < j) {//如果比基准数小，继续查找
            i++;
        }
        //如果比基准数大，则将查找到的小值调换到j的位置
        array[j] = array[i];
    }
    
    array[i] = @(key);
    
    /* 递归排序*/
    //排序基准数左边的
    [self quickSortArray:array left:left right:i-1];
    //排序基准数右边的
    [self quickSortArray:array left:i+1 right:right];
    
    
    NSLog(@"array:%@",array);
}

//递归j求和
- (int)calculateWithNumber:(int)num
{
    if (num > 1) {
        self.sum = [self calculateWithNumber:num - 1] + num;
        return self.sum;
    }else{
        return 1;
    }
}

- (void)buttonTest
{
    NSLog(@"456");
}
- (void)tapAction
{
    NSLog(@"123");
}

//- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
//{
//    return self.dataSource.count;
//}
//
//- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
//{
//    TestTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:Cell forIndexPath:indexPath];
//    [cell setTestModel:self.dataSource[indexPath.row]];
//    return cell;
//}
//
//- (UITableView *)tableView
//{
//    if (!_tableView) {
//        _tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 375, 667) style:UITableViewStyleGrouped];
//        _tableView.delegate = self;
//        _tableView.dataSource = self;
//        [_tableView registerClass:[TestTableViewCell class] forCellReuseIdentifier:Cell];
//    }
//    return _tableView;
//}
//
//- (NSMutableArray *)dataSource
//{
//    if (!_dataSource) {
//        _dataSource = [[NSMutableArray alloc] init];
//    }
//    return _dataSource;
//}

@end
